//
//  UIImage+PLUtility.h
//
//  Created by KimmanYip on 2017/9/8.
//
//

/*
 * 图片处理工具
 */

#import <UIKit/UIKit.h>

@interface UIImage(PLExtension)

/** 根据图片名返回Image，不缓存 */
+ (UIImage *)pl_imageNamedWithoutCache:(NSString *)name;

/** 根据颜色返回图片 */
+ (UIImage *)pl_imageWithColor:(UIColor*)color;
+ (UIImage *)pl_imageWithColor:(UIColor*)color size:(CGSize)size;

/** 将方形图片裁剪为带弧度的图片 */
- (UIImage *)pl_imageByClipWithCornerRadius:(CGFloat) cornerRadius;

/** 将方形图片裁剪为圆形图片 */
- (UIImage *)pl_imageByOvalClip;

/** 给图片加边框 */
- (UIImage *)pl_imageWithBorderWidth:(CGFloat)border borderColor:(UIColor *)color;

/** 合成背景图、前景图为一张图片 */
+ (UIImage *)pl_composeImageWithBackImage:(UIImage *)backImage foreImage:(UIImage *)foreImage size:(CGFloat)size;
+ (UIImage *)pl_composeImageWithBackImage:(UIImage *)backImage foreImage:(UIImage *)foreImage size:(CGFloat)sizeWH foreBorder:(CGFloat)border borderColor:(UIColor *)color;


/**
 *  根据CIImage生成指定大小的UIImage
 *
 *  @param image CIImage
 *  @param size  图片宽度
 */
+ (UIImage *)pl_imageFromCIImage:(CIImage *)image size:(CGFloat)size;

/** 压缩图片 */
- (UIImage *)pl_imageScaledToSize:(CGSize)size;

/**
 从自定义的Bundle文件中获取图片
 
 @param name       图片名
 @param bundleName Bundle名
 
 @return 图片
 */
+ (UIImage*)pl_imageNamed:(NSString *)name fromCustomBundleName:(NSString*)bundleName;

/**
 压缩质量
 
 @param fileSize 目标大小
 
 @return 质量
 */
+ (CGFloat)pl_comprogressImageQualityWithSize:(float)fileSize;


/**
 修复图片方向的BUG
 
 @return 修复后的图片
 */
- (UIImage *)pl_fixOrientation;


/**
 生成压缩有的图片Data
 
 @param image 图片
 
 @return 二进制数据
 */
+ (NSData *)pl_comprogressDataWithImage:(UIImage*)image;


/**
 图片旋转

 @param image 图片
 @param orientation 旋转方向
 @return 旋转后的图片
 */
+ (UIImage *)pl_image:(UIImage *)image rotation:(UIImageOrientation)orientation;

@end
